The present invention relates generally to computer graphics and, more specifically, to polygonal surface simplification of three dimensional objects in a scene.
Computer-generated visual simulations are used in many application areas, such as flight simulation, building walkthroughs, computational fluid dynamics, and video games, for example, with the purposes of training, evaluation, education, and entertainment. Since recent general purpose graphics workstations and personal computers (PCs) allow the interactive display of thousands of polygons making up representations of three dimensional (3D) objects, these simulations have become more common and accessible to a variety of users, such as scientists, educators, and game players. However, as graphics performance increases and its cost decreases, a new generation of users will demand even more complex and more realistic animations. Such animations will require real-time performance at approximately constant frame rates so that the user has the feeling of actual immersion in a virtual world.
In response, content authors are creating more complicated simulations. A simulation may include many different scenes, each with many objects. An object is typically represented as a polygonal mesh. A complicated object may be represented by a mesh containing hundreds or thousands of polygons. When more polygons are present in the mesh, the quality of the image shown on the display is better (that is, it is more detailed), but the time required to display the object is higher. When less polygons are present in the mesh, the quality of the image is poorer, but the time required to display the object is lower. In some cases, a graphics subsystem cannot render a scene having many complicated objects in real-time. A graphics subsystem may attempt to simplify some or all of the objects so that the scene can be displayed more quickly. For example, if an object is initially represented by a mesh having 10,000 polygons, it may be simplified by methods known in the art to a representation of the object having only 1,000 polygons. The object may be simplified further, for example, into a representation having only 100 polygons. These different representations are called levels of detail (LOD). Such LODs are commonly represented in a multi-resolution mesh (MRM). Depending on the desired image quality and system bandwidth, different instances of a multi-resolution mesh representing an object may be used.
Various scene management techniques are used by 3D graphics packages to increase the performance of displaying the scene on a display. For example, some objects in a scene may be simplified by utilizing one or more of several known methods. These methods are known as polygonal surface simplification techniques or mesh simplification techniques. In some cases, objects appearing farther away from a user may be simplified into meshes having fewer polygons (and thus be lower quality images) while objects appearing closer to a user may be only slightly simplified or not simplified at all.
A drawback of polygonal surface simplification techniques known to date is that they operate only on individual objects at a time. Hence, these techniques are inefficient and inadequate for handling complex scenes having large numbers of complex objects. Therefore, a technique that automatically simplifies all of the objects in a scene according to predetermined criteria and that balances image quality and system performance would be a significant advance in the computer graphics art.
An embodiment of the present invention is a method of scene simplification. The method includes concurrently simplifying a plurality of objects in a scene represented by a hierarchical scene graph.
Another embodiment of the present invention is a method of polygon budgeting for a scene represented by a hierarchical scene graph in a first database. The method includes generating a second database based on the first database by concurrently simplifying a plurality of objects in the scene, the second database including a representation for each of the objects, and adjusting the representations such that a total number of polygons in the scene is less than a predetermined number.